数据容器数据容器是一种可以容纳多份数据的数据类型,容纳的每一份数据称之为一个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等
在Python中有不同的数据容器,他们有不同的特性,分为五类:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
list 列表定义123list_name1 = [name1,name2,name3,...]list_a = []list_b = list()
以方括号作为表示,用逗号隔开,元素之间可以是不同的数据类型,支持嵌套,后面两种都是定义空列表的方式
例如
1list_name2 = [[1,2,3],[3,4,5]]
使用数组是利用下标索引进行访问的,有两种标号方式,一种是从左到右,依次标号为0,1,2,…;第二种是从右到左,一次标号为-1,-2,-3,…;
当我们想要进行取出数据时,可以利用方括号+下标的方式取出,例如
12list_1 = list_name1[0]list_2 = list_name2[0][1]
方法这里的方法其实就类似于函数,但是需要配合数据容器进行使用
查找下...
函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
他具有高复用性,方便了程序的编写与使用
定义语法123def 函数名(传入参数): 函数体 return 返回值
定义是这样的,调用就是直接写函数名称和你需要传入的参数即可
参数和返回值如果不需要是可以省略,需要注意的是函数必须要先定义好才能使用
传参例如:
123def add(x,y): res = x + y print(f"{x}+{y}={res}")
要注意传参需要用逗号进行分隔
返回值是为了返回程序执行的结果
例如
123def add(x,y): res = x + y return res
这里就是返回了结果
None类型实际上没有调用return进行返回数据时,函数也是有返回值的,就是None,其实就是返回空的意思,当函数遇到了特殊情况需要结束函数时,即可调用return None进行返回
函数说明当我们进行团队协作完成项目时,最好写上函数说明,用于辅助理解函数的作用,例如...
判断语句bool 类型bool 类型可以用True和False表示真或假,实际上的数值Ture是1,False是0
要注意这里的首字母需要大写
也可也通过比较运算符来获取结果,这个结果也是bool类型
语法在Python种基本上不使用大括号进行代码块的区分,而是使用冒号加缩进的方式,因此Python对于格式的要求十分严格,例如
if 语句1234condition = int(input()) # 这里利用input函数读取用户输入的数字,默认为字符串,利用int函数转换为整数if condition > 20: print("condition is true!")
判断语句的结果必须是bool类型,仅当结果为True时会执行代码块内的语句
if else 语句123456condition = int(input())if condition > 20: print("condiiton is true!")else: print("condition is false!")
els...
Python 环境在Python官网下载的Python实际上是Python的解释器,而我们所熟知的PyCharm是一种Python的编辑器,Python安装教程已经非常丰富了,这里就不过多介绍
Python 语法与使用基础语法数据类型在Python中有6种自带的数据类型
类型
描述
数字(Number)
整数(int)、浮点数(float)、复数(complex)、布尔值(bool)
字符串(String)
由一串字符组成的一种描述文本的数据类型
列表(List)
有序的序列
元组(Tuple)
有序的不可更改的序列
集合(Set)
无序不重复集合
字典(Dictionary)
键值对的集合
在Python中的数据类型我们可以使用type()函数查看,在Python中声明变量是不需要声明数据类型的,但是在使用过程中仍然要注意类型的匹配,在后面的学习中,我们会介绍标注类型的方法
Python是不受数据大小限制的,例如整数int是没有大小限制的
Python中值相同的变量指向的是同一个地址的,可以用id()来查看
注释注释用法如下,举例
12345...
介绍list是一个类似于双向带头循环链表的序列式容器,是一个可以在常数时间范围内任意位置进行插入删除的容器。list与forward_list十分相似,但是forward_list本质上是一个单链表,因此也更简单高效。list不支持随机访问,需要通过从头部或者尾部迭代到该位置,其次list的每个节点不仅仅只有数据内容,还包含了指向前后位置的关联信息
接口构造函数
函数
说明
list(size_type n, const value_type& val = value_type())
构造n个val
list()
空list
list(const list& x)
拷贝构造
list(InputIterator first, InputIterator last)
区间构造
迭代器这里迭代器的结构比较复杂,暂时将迭代器理解为指针即可
函数
说明
begin,end
返回第一个元素的迭代器,返回最后一个元素下一个位置的迭代器
rbegin,rend
返回最后一个元素的迭代器,返回第一个元素前一个位置的迭代器
...
vector的简单模拟实现由于vector支持各类容器和数据类型,还有内存池等相关部分,这里为了方便初学者学习,不涉及模板的高级知识,只使用基础的C++知识,实现简单的vector的功能
头文件概览123456789101112131415161718192021222324252627282930313233343536373839404142434445namespace xu { template <class T> // 模板类 class vector { public: // 迭代器部分 typedef T* iterator; typedef const T* const_iterator; iterator begin(); iterator end(); const_iterator cbegin(); const_iterator cend(); // 构造函数与析构函数 vector(); vector(int n, const T& value = T()); templ...
vector介绍vectorvector是一个可变大小数组的序列容器,是一个类似于数组的顺序存储结构容器,因此可以采用下表对vector的元素进行访问,可以进行随机存储,而且其大小是可变的
vector的使用
构造函数
说明
vector()
无参构造
vector(size_type n, const value_type& val = value_type())
构造并初始化n个val
vector(const vector& x)
拷贝构造
vector(InputIterator first, InputIterator last)
迭代器构造,传入首尾迭代器
iterator
说明
begin(),end()
获取第一个元素位置的迭代器、最后一个元素下一个位置的迭代器
rbegin(),rend()
获取最后一个元素位置的迭代器、获取第一个元素前一个位置的迭代器
容量操作函数
说明
size
获取数据个数
capacity
获取容量大小
empty
判空
resize
改变s...
string模拟实现头文件1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>#include<cstring>#include<cassert>#define npos -999namespace xu{ class string { //流插入流提取是左操作符,需要声明友元函数 friend std::ostream& operator<<(std::ostream& _cout, const xu::string& s); friend std::istream& operator>>(std::istream&...